Cohesion, Coupling and Abstraction Level: Criteria for Capability Identification
نویسندگان
چکیده
Large-scale software-based systems warrant lengthy development cycles during which there is a constant evolution of user needs and technology specifications. It is imperative that in order to function satisfactorily the system components accommodate change. However, the traditional process of development advises baselining requirements, as opposed to architecting the system such that it supports evolution. We propose the construction of systems based on Capabilities to accommodate functional changes in a nonintrusive manner. Capabilities are functional abstractions designed to exhibit properties of stability — high cohesion, low coupling, and balanced abstraction levels — which promote an underlying change-tolerant framework. To measure these characteristics we explore two algorithms — Synthesis and Decomposition — based on polar approaches to problem solving. The synthesis algorithm measures stability properties of detailed rudimentary elements to determine which aggregates are Capabilities. In contrast, the decomposition algorithm identifies Capabilities by evaluating higher-level abstractions that represent various functionalities of the system to be developed. Upon empirical analysis (of a library system) we determine that neither approach is sufficient in isolation. Therefore, we formulate a computationally viable algorithm by reconciling specific aspects of measurement from the synthesis and decomposition approaches. In particular, it uses the cohesion and coupling measures as defined by the decomposition algorithm and the abstraction level as determined by the synthesis algorithm. We construct specific metrics to compute cohesion and coupling. In addition, we objectively define and illustrate the characterization of a balanced abstraction level. An experiment with a Course Evaluation system confirms the efficacy of Capabilities in increasing its change-tolerance.
منابع مشابه
A classical view of object-oriented cohesion and coupling
AARON B. BINKLEY AND STEPHEN R. SCHACH Computer Science Department, Vanderbilt University, Box 1679, Station B, Nashville, TN 37235, USA. __________________________________________________________________ Contact: Stephen R. Schach Computer Science Department, Vanderbilt University Box 1679, Station B, Nashville, TN 37235 ☎ 615/322-2924 Fax 615/343-5459 E-mail: [email protected] ________...
متن کاملCoupling and Cohesion as Modularization Drivers: Are We Being Over-Persuaded?
For around three decades Software Engineering gurus have "sold" us the ideal of minimal coupling and maximal cohesion at all levels of abstraction as a way to reduce the effort to understand and maintain software systems. The object-oriented paradigm brought a new design philosophy and encapsulation mechanisms that apparently would help us to achieve that desideratum. However, after a decade wh...
متن کاملMeasuring Coupling and Cohesion: An Information-Theory Approach
The design of software is often depicted by graphs that show components and their relationships. For example, a structure chart shows the calling relationships among components. Object-oriented design is based on various graphs, as well. Such graphs are abstractions of the software, devised to depict certain design decisions. Coupling and cohesion are attributes that summarizes the degree of in...
متن کاملApplying agglomerative hierarchical clustering algorithms to component identification for legacy systems
Context: Component identification, the process of evolving legacy system into finely organized component-based software systems, is a critical part of software reengineering. Currently, many component identification approaches have been developed based on agglomerative hierarchical clustering algorithms. However, there is a lack of thorough investigation on which algorithm is appropriate for co...
متن کاملبه کارگیری الگوریتم ژنتیک جهت شناسایی خودکار سرویس ها با توجه به معیارهای کیفی سرویس
Service-oriented architecture improves the stability and operational capability of software systems for passive defense measures. Automatic identification of services using quality of service measures ensures the successful deployment of service-oriented architecture and is great importance to speed up software development life cycle. Little attention to non-functional requirements, no conside...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- JSW
دوره 3 شماره
صفحات -
تاریخ انتشار 2008